메인 콘텐츠로 이동하기
  1. 블로그 글/

머신러닝 - 피처 엔지니어링(Feature Engineering)

본 글에서는 원시 데이터(raw data)를 모델이 이해할 수 있는 형태로 변환하는 과정인 피처 엔지니어링(Feature Engineering)이 무엇이며, 왜 중요한지, 그리고 기본적인 피처 엔지니어링 기법에 대해 설명합니다.

피처 엔지니어링이란? #

피처 엔지니어링은 주어진 원시 데이터를 머신러닝 모델이 효과적으로 작동할 수 있는 피처(Feature) 혹은 변수로 변환하는 과정입니다. 이 과정에는 불필요한 정보의 제거, 유용한 정보의 추출 및 변환, 그리고 모델의 학습 과정에서 더 잘 작동할 수 있도록 데이터를 조정하는 작업이 포함됩니다.

피처 엔지니어링의 중요성 #

피처 엔지니어링은 머신러닝 모델의 성능을 크게 향상시킬 수 있습니다. 좋은 피처는 모델이 데이터에서 패턴을 더 잘 학습하게 하며, 결과적으로 예측의 정확도를 높입니다. 반면, 관련성이 낮거나 잘못된 피처는 모델의 성능을 저하시킬 수 있습니다. 따라서, 피처 엔지니어링은 모델의 성능을 최대화하는 데 필수적인 과정입니다.

피처 엔지니어링 기법 #

피처 엔지니어링에는 다양한 기법이 있으며, 아래는 가장 기본적인 몇 가지 기법입니다:

결측치 처리 #

데이터에 결측치가 있는 경우, 이를 처리하는 것이 중요합니다. 결측치를 평균, 중앙값, 최빈값 등으로 대체하거나, 결측치가 있는 행을 제거하는 방법이 있습니다.

범주형 데이터 처리 #

모델에 따라 범주형 데이터를 직접 처리할 수 없는 경우가 많습니다. 원-핫 인코딩(One-Hot Encoding), 레이블 인코딩(Label Encoding) 등의 방법을 사용하여 범주형 데이터를 숫자형 데이터로 변환할 수 있습니다.

피처 스케일링 #

다양한 피처의 스케일을 조정하여 모델이 피처를 공정하게 평가할 수 있도록 합니다. 표준화(Standardization)와 정규화(Normalization)가 이에 해당합니다.

피처 선택(Feature Selection) #

모델의 복잡도를 줄이고, 오버피팅을 방지하기 위해 중요한 피처만을 선택합니다. 통계적 방법, 모델 기반 방법 등이 있습니다.

피처 생성(Feature Creation) #

기존 피처를 조합하거나 변형하여 새로운 피처를 생성합니다. 이를 통해 모델이 데이터를 더 잘 이해할 수 있게 됩니다.

인코딩 변환 #

범주형 데이터는 텍스트로 표현된 데이터 카테고리를 의미합니다. 대부분의 머신러닝 알고리즘은 숫자형 데이터를 입력으로 받기 때문에, 이러한 범주형 데이터를 적절한 숫자형 포맷으로 변환하는 과정이 필수적입니다. 인코딩 변환에는 주로 두 가지 방법이 사용됩니다.

원-핫 인코딩(One-Hot Encoding) #

각 카테고리를 하나의 열로 변환하고, 해당 카테고리에 해당하는 경우에만 1의 값을, 그렇지 않은 경우에는 0의 값을 갖습니다. 이 방식은 범주 간의 순서나 중요도를 고려하지 않기 때문에, 모델이 각 범주를 동등하게 취급하도록 합니다.

레이블 인코딩(Label Encoding) #

각 범주형 데이터를 순서대로 번호를 매겨 숫자형으로 변환합니다. 예를 들어, ‘red’, ‘blue’, ‘green’을 각각 0, 1, 2로 변환할 수 있습니다. 레이블 인코딩은 범주의 개수만큼 차원을 증가시키지 않지만, 숫자의 크고 작음이 모델에 영향을 줄 수 있으므로 주의해야 합니다.

스케일링 #

피처 스케일링은 서로 다른 단위 또는 범위를 가진 데이터를 일정한 범위나 스케일로 통일하는 과정입니다. 이를 통해 모든 피처가 동등하게 모델에 영향을 미치도록 합니다. 스케일링에는 주로 두 가지 방법이 사용됩니다.

  1. 표준화(Standardization): 데이터의 평균을 0, 표준편차를 1로 조정합니다. 이 방식은 데이터의 분포가 정규 분포를 따르지 않을 때 유용하며, 이상치에 덜 민감합니다.
  2. 정규화(Normalization): 데이터의 값을 0과 1 사이의 범위로 조정합니다. 가장 일반적인 방식은 최소값과 최대값을 사용하는 것이며, 모든 데이터 포인트가 동일한 스케일을 갖게 됩니다.